import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;

/**
 * HTTP GET/POST请求分析
 */
public class S7_LoginServlet extends HttpServlet {

    /*
        Post请求有这些：
        1.form标签 method=post
        2.HTTP请求中怎样选择Get和Post方式
          I)get传送的数据量较小，不能大于2KB
          II)post传送的数据量较大，一般默认不限制
          III)Post请求是会在浏览器隐藏参数部分，在安全要求的部分都会使用到Post请求
          IV)在向服务器传递数据较大时，使用Post，get是有限制的，比如发帖，上传文件
          V)在前台页面展示，比如分页内容可以保留传递参数
     */
    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        resp.setContentType("text/html;charset=UTF-8");
        PrintWriter writer = resp.getWriter();
        writer.print("<h1>登录成功~~</hi>");
        //2.为了确保数据返回，可以把 flush() 和 close()带上
        //flush() 方法表示将缓存的数据进行刷新
        writer.flush();
        //close() 及时释放资源
        writer.close();
    }

    /*
        Get请求有这些：
        1.form标签 method=get[指定]
        2.a 标签
        3.link 标签引入 css
        4.Script 标签引入 js
        5.img 标签引入图片
        6.iframe 引入html页面
        7.在浏览器地址栏输入地址后回车
     */
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        //输出一句话，返回给浏览器
        //1.通过 response 获取流，可以给浏览器回复数据
        //2.为了让浏览器返回中文，需要告诉浏览器编码
        //(1) 给回送数据设置编码 (2) text/html这个是MIME即告诉浏览器返回的数据
        //是 text类型下的html格式数据【MIME类型 大类型/小类型】(3)charset=utf-8数据编码
        //小小细节: 设置编码格式要在 response.getWriter()前!!
        resp.setContentType("text/html;charset=UTF-8");
        PrintWriter writer = resp.getWriter();
        writer.print("<h1>登录成功~~</hi>");

        //2.为了确保数据返回，可以把 flush() 和 close()带上
        //flush() 方法表示将缓存的数据进行刷新
        writer.flush();
        //close() 及时释放资源
        writer.close();
    }


}
